package com.project.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.project.bean.GradeBean;
import com.project.bean.RoleBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface IRoleMapper extends BaseMapper<RoleBean> {
    /**
     * 删除角色
     * 1、通过角色id删除用户角色中间表
     * 2、通过角色id删除权限角色中间表
     * 3、通过角色id删除角色
     * @param roleId    角色id
     */
    void delRole(Integer roleId);

    /**
     * 查看角色信息
     * 同时查询角色拥有的权限集合
     * @param roleId    角色id
     * @return  角色对象
     */
    RoleBean findById(Integer roleId);

    /**
     * 根据角色id查找权限集合
     * @param roleId    角色id
     * @return
     */
    List<GradeBean> findByRoleId(Integer roleId);

    /**
     * 删除角色权限，根据角色id删除
     * @param roleId
     */
    void delRoleGradeByRoleId(Integer roleId);

    /**
     * 添加角色权限
     * @param roleId    角色id
     * @param gradeIds  新权限数组
     */
    void addRoleGradeByRoleId(@Param("roleId") Integer roleId, @Param("gradeIds") Integer[] gradeIds);
}
